import React from 'react';
import { Button, Checkbox, Form, Input, message as antdMessage } from 'antd';
import { request } from '../../utils/request';
import { useDispatch } from 'react-redux';
import { LOGIN_SUCCESS } from '../../store/user/userActions';
import { useNavigate } from 'react-router-dom'
const onFinishFailed = (errorInfo: any) => {
  console.log('Failed:', errorInfo);
};

const App: React.FC = () => {
  const dispatch = useDispatch()
  const navigate = useNavigate()
  const onFinish = async (values: any) => {

    const resp = await request.post('/api/login', values)
    const { code, message, data } = resp.data;
    if (code === 200) {
      dispatch({ type: LOGIN_SUCCESS, payload: data });
      navigate('/home')
      antdMessage.success(message)
    } else {
      antdMessage.error(message)
    }
  };
  
  return (
    <Form
      name="basic"
      labelCol={{ span: 8 }}
      wrapperCol={{ span: 16 }}
      style={{ maxWidth: 600 }}
      initialValues={{ remember: true }}
      onFinish={onFinish}
      onFinishFailed={onFinishFailed}
      autoComplete="off"
    >
      <Form.Item
        label="Username"
        name="username"
        rules={[{ required: true, message: 'Please input your username!' }]}
      >
        <Input />
      </Form.Item>

      <Form.Item
        label="Password"
        name="password"
        rules={[{ required: true, message: 'Please input your password!' }]}
      >
        <Input.Password />
      </Form.Item>

      <Form.Item name="remember" valuePropName="checked" wrapperCol={{ offset: 8, span: 16 }}>
        <Checkbox>Remember me</Checkbox>
      </Form.Item>

      <Form.Item wrapperCol={{ offset: 8, span: 16 }}>
        <Button type="primary" htmlType="submit">
          Submit
        </Button>
      </Form.Item>
    </Form>
  )
}

export default App;